﻿namespace Softserve.Pottery.Manufacturing.Contracts
{
    using System.Collections.Generic;
    using Softserve.Pottery.Infrastructure;
    using Softserve.Pottery.Manufacturing.Domains;
    using System.ServiceModel;

    /// <summary>
    /// TODO: add the necessary functionality
    /// </summary>
  
    [ServiceContract]
    public interface IApprovementContract
    {
        [OperationContract]
        Approvement CreateApprovement(int id, int MasterId, Batch batch, ProductionStage currentStage, List<int> productsId, int quantityAfterModeling = default(int), int quantityAfterRoasting = default(int), int quantityAfterPainting = default(int));

        [OperationContract]
        Approvement EditQuantityAfterModeling(int quantityAfterModeling, Approvement item);
        
        [OperationContract]
        Approvement EditQuantityAfterRoasting(int quantityAfterRoasting, Approvement item);

        [OperationContract]
        Approvement EditQuantityAfterPainting(int quantityAfterPainting, Approvement item);

        /// <summary>
        /// Final approve of Approvement document
        /// </summary>
        /// <param name="item"></param>
        /// <returns>item with field Approved = true</returns>
        [OperationContract]
        Approvement Approve(Approvement item);

    }
}
